﻿using RSSFeedReader.Data.Models;
using RSSFeedReader.ViewModels;

namespace RSSFeedReader.Services
{
    /// <summary>
    /// Interface to provide a way of showing windows.
    /// </summary>
    public interface IDisplayWindowService
    {
        /// <summary>
        /// Displays the Add New Feed dialogue.
        /// </summary>
        void ShowAddNewFeedView();

        /// <summary>
        /// Displays the Add New Folder dialogue.
        /// </summary>
        void ShowAddNewFolderView();

        /// <summary>
        /// Displays the Add New Folder dialogue.
        /// </summary>
        /// <param name="channel">The Channel to add the folder to</param>
        void ShowAddNewFolderView(Channel channel);

        /// <summary>
        /// Displays the Manage Feeds dialogue.
        /// </summary>
        void ShowManageFeedsView();

        /// <summary>
        /// Displays the Move to Folder dialogue.
        /// </summary>
        /// <param name="channelViewModel">The Channel to move.</param>
        void ShowMoveToFolderView(ChannelViewModel channelViewModel);

        /// <summary>
        /// Displays the properties of a specified Channel.
        /// </summary>
        /// <param name="channelViewModel">The Channel to show the properties of.</param>
        void ShowChannelPropertiesView(ChannelViewModel channelViewModel);

        /// <summary>
        /// Displayes the Rename Channel dialogue.
        /// </summary>
        /// <param name="channelViewModel">The ChannelViewModel to rename.</param>
        void ShowRenameChannelView(ChannelViewModel channelViewModel);
    }
}
